package com.me.adventures.pruebas; import java.util.ArrayList; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.math.Vector2; import com.me.adventures.characters.*; import com.me.adventures.main.AdventuresOfManuel; import com.me.adventures.screens.Nivel; public class EnemyTest extends Nivel { private BitmapFont font; private int eleccion; private boolean serpienteDerecha, serpienteIzquierda, finSerpiente, dragon, matarDragon, leeper, leeperDormido, fantasma, fantasmaQuieto, calavera, calaveraAtaca, finPruebas; Dragon dr = new Dragon(adventures, new Vector2(541, 522), manuel, Dragon.ABAJO); Leeper le = new Leeper(adventures, new Vector2(541, 522), manuel, Leeper.ARRIBA); Fantasma fa = new Fantasma(adventures, new Vector2(541, 522), manuel, 0); Calavera ca = new Calavera(adventures, new Vector2(541, 522), manuel); Corazon corazon2 = new Corazon(adventures, new Vector2(773,406), 2); public EnemyTest(AdventuresOfManuel adventures, Vector2 posicionManuel) { super(adventures, posicionManuel); font = new BitmapFont(Gdx.files.internal("arial.fnt"), Gdx.files.internal("arial.png"), false); serpienteIzquierda = true; serpienteDerecha = false; finPruebas = false; eleccion = 0; } @Override protected void objetosDelNivel() { objetos = new ArrayList<ObjetoDelJuego>(); corazones = new ArrayList<Corazon>(); //Se introducen las paredes del nivel objetos.add(new Pared(adventures, new Vector2(0, 0), 1024, 58)); objetos.add(new Pared(adventures, new Vector2(135, 0), 58, 754)); objetos.add(new Pared(adventures, new Vector2(135, 696), 406, 58)); objetos.add(new Pared(adventures, new Vector2(541, 725), 58, 29)); salida = new Salida(adventures, new Vector2(483,696), 0, 0); objetos.add(new Pared(adventures, new Vector2(599, 696), 290, 58)); objetos.add(new Pared(adventures, new Vector2(831, 0), 58, 754)); corazones.add(new Corazon(adventures, new Vector2(773,406), 0)); cofre = new Cofre(adventures, new Vector2(425,116), 2); } @Override protected void personajesDelNivel() { personajes = new ArrayList<PersonajeDelJuegoEnemigo>(); personajes.add(new Serpiente(adventures, new Vector2(541, 522), manuel)); } @Override public void render(float delta) { Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); // Actualizamos personajes pantalla manuel.update(); for(PersonajeDelJuego personaje : personajes){ personaje.update(); } for(int i = 0; i < personajesMovibles.size(); i++){ personajesMovibles.get(i).moverEnBola(); personajesMovibles.get(i).update(); } // Pintamos la pantalla batch.begin(); batch.draw(TexturaFondo, 135, 0, TexturaFondo.getWidth(), TexturaFondo.getHeight()); // Pruebas de enemigos serpiente(); dragon(); leeper(); fantasma(); calavera(); if(finPruebas) adventures.pruebasFinalizadas(); manuel.draw(batch); batch.end(); } private void calavera(){ if(calavera){ font.draw(batch, "La calavera no atacara hasta que", 207, 638); font.draw(batch, "hayas recogido el corazon.", 207, 588); // Resetear personajes, corazones, cofre y salida personajes.clear(); corazones.clear(); salida = new Salida(adventures, new Vector2(483,696), 0, 0); corazones.add(new Corazon(adventures, new Vector2(773,406), 2)); cofre = new Cofre(adventures, new Vector2(425,116), 2); personajes.add(ca); iniciarColisiones(); for(PersonajeDelJuego personaje : personajes) personaje.draw(batch); for(Corazon corazon : corazones) corazon.draw(batch); salida.draw(batch); cofre.draw(batch); if(colisiones.colisionCorazon(manuel)) manuel.obtenerCorazon(); if(manuel.getCorazonesObtenidos() > 2){ cofre.abrirCofre(); ca.activarAtaque(); dibujar(); } } if(calaveraAtaca){ cofre.draw(batch); salida.draw(batch); iniciarColisiones(); font.draw(batch, "Coge la gema o dispara para finalizar", 207, 588); font.draw(batch, "Ahora la calavera ataca", 207, 638); for(PersonajeDelJuego personaje : personajes) personaje.draw(batch); if(cofre.getBordes().overlaps(manuel.getBordes()) || ca.estaEnBola()){ dibujar(); } } } private void fantasma(){ if(fantasma){ font.draw(batch, "Ahora el enemigo es un fantasma", 207, 638); font.draw(batch, "Colsiona con el", 207, 588); // Resetear personajes personajes.clear(); personajes.add(fa); iniciarColisiones(); for(PersonajeDelJuego personaje : personajes) personaje.draw(batch); if(colisiones.colisionAbajoEnemigo(manuel) || colisiones.colisionIzquierdaEnemigo(manuel) || colisiones.colisionArribaEnemigo(manuel) || colisiones.colisionDerechaEnemigo(manuel)) dibujar(); } if(fantasmaQuieto){ font.draw(batch, "El fantasma se ha quedado quieto", 207, 638); font.draw(batch, "Pulsa espacio para el siguiente.", 207, 588); for(PersonajeDelJuego personaje : personajes) personaje.draw(batch); if(Gdx.input.isKeyPressed(Keys.SPACE)){ dibujar(); } } } private void dragon(){ if(dragon){ font.draw(batch, "El dragon no atacara hasta que", 207, 638); font.draw(batch, "hayas recogido el corazon.", 207, 588); personajes.clear(); personajes.add(dr); iniciarColisiones(); for(PersonajeDelJuego personaje : personajes) personaje.draw(batch); for(Corazon corazon : corazones) corazon.draw(batch); salida.draw(batch); cofre.draw(batch); if(colisiones.colisionCorazon(manuel)) manuel.obtenerCorazon(); if(manuel.getCorazonesObtenidos() > 0){ cofre.abrirCofre(); dr.activarAtaque(); dibujar(); } } if(matarDragon){ cofre.draw(batch); salida.draw(batch); font.draw(batch, "Ahora el dragon ataca", 207, 588); font.draw(batch, "Coge la gema para pasar al siguiente", 207, 638); for(PersonajeDelJuego personaje : personajes) personaje.draw(batch); if(cofre.getBordes().overlaps(manuel.getBordes())){ cofre.cogerGema(); salida.abrirSalida(); dibujar(); } } } private void leeper(){ if(leeper){ font.draw(batch, "Colisiona con el leeper para que se duerma", 207, 638); personajes.clear(); personajes.add(le); iniciarColisiones(); for(PersonajeDelJuego personaje : personajes) personaje.draw(batch); if(colisiones.colisionAbajoEnemigo(manuel) || colisiones.colisionIzquierdaEnemigo(manuel) || colisiones.colisionArribaEnemigo(manuel) || colisiones.colisionDerechaEnemigo(manuel)){ font.draw(batch, "Bien, pulsa espacio para el siguiente", 207, 638); le.draw(batch); dibujar(); } } if(leeperDormido){ font.draw(batch, "Pulsa espacio para el siguiente enemigo", 207, 638); for(PersonajeDelJuego personaje : personajes) personaje.draw(batch); if(Gdx.input.isKeyPressed(Keys.SPACE)){ dibujar(); } } } private void serpiente() { if(serpienteIzquierda){ font.draw(batch, "Colocate a la izquierda de la serpiente", 207, 638); font.draw(batch, "Ella te seguira con la mirada", 207, 588); for(PersonajeDelJuego personaje : personajes) personaje.draw(batch); if(Gdx.input.isKeyPressed(Keys.LEFT) && manuel.getPosicion().x <= 541.0){ dibujar(); } } if(serpienteDerecha){ font.draw(batch, "Ahora prueba a colocarte a su derecha", 207, 638); for(PersonajeDelJuego personaje : personajes) personaje.draw(batch); if(Gdx.input.isKeyPressed(Keys.RIGHT) && manuel.getPosicion().x > 541.0){ dibujar(); } } if(finSerpiente){ font.draw(batch, "Pulsa espacio para el siguiente enemigo", 207, 638); for(PersonajeDelJuego personaje : personajes) personaje.draw(batch); if(Gdx.input.isKeyPressed(Keys.SPACE)){ dibujar(); } } } private void dibujar(){ switch(eleccion){ case 0: serpienteIzquierda = false; serpienteDerecha = true; eleccion++; break; case 1: serpienteDerecha = false; finSerpiente = true; eleccion++; break; case 2: finSerpiente = false; dragon = true; eleccion++; break; case 3: dragon = false; matarDragon = true; eleccion++; break; case 4: matarDragon = false; leeper = true; eleccion++; break; case 5: leeper = false; eleccion++; leeperDormido = true; break; case 6: leeperDormido = false; fantasma = true; eleccion++; break; case 7: fantasma = false; fantasmaQuieto = true; eleccion++; break; case 8: fantasmaQuieto = false; calavera = true; eleccion++; break; case 9: calavera = false; calaveraAtaca = true; eleccion++; break; case 10: calaveraAtaca = false; finPruebas = true; break; } } @Override public void resize(int width, int height) { // TODO Auto-generated method stub } @Override public void show() { // TODO Auto-generated method stub } @Override public void hide() { // TODO Auto-generated method stub } @Override public void pause() { // TODO Auto-generated method stub } @Override public void resume() { // TODO Auto-generated method stub } @Override public void dispose() { // TODO Auto-generated method stub } @Override protected void mapaDelNivel() { // TODO Auto-generated method stub } }